MENTAL, UN LENGUAJE
COMPACTO

“Comprender es comprimir” (Gregory Chaitin)

“La comprensión es la mínima expresión de lo máximo compartido” (Jorge Wagensberg)

“Comprender es relacionar una realidad con algo más compacto que ella misma y, en el límite, con su propia esencia” (Jorge Wagensberg)

“La ciencia es la forma más simple y comprimida de comprender la realidad” (Jorge Wagensberg)



La Compresión

Los objetos matemáticos finitos se pueden representar de manera extensiva (especificándolos un a uno) o de manera intensiva (especificando un patrón, una forma, una propiedad o un algoritmo). Cuando la representación intensiva de un objeto es más corta que la extensiva, decimos que los hemos comprimido o compactado.

Los objetos matemáticos infinitos solo pueden ser representados de forma intensiva. Si no es posible hacerlo, entonces dichos objetos son inexpresables con nuestros recursos lingüísticos.

Este enfoque de la compresión es utilizado por Gregory Chaitin [2002, 2005, 2006] para ilustrar las limitaciones de la matemática:
El lenguaje APL

Kenneth Iverson creó una notación matemática compacta para manipular matrices con el objeto de simplificar la enseñanza del álgebra a sus estudiantes. Esta notación le sirvió para crear en 1962, junto con Adin D. Falkoff, el lenguaje de programación APL (las siglas de “A Programming Language”), un lenguaje interactivo de alto nivel de abstracción que ofrecía una notación compacta, simple y fácil de aprender, desafiando la notación matemática tradicional, una notación orientada principalmente para la manipulación de matrices (array-oriented language), que incluye operaciones aritméticas y lógicas. Para Iverson [1980], la notación era una “herramienta del pensamiento”.

El lenguaje APL sirvió de inspiración a otros lenguajes de programación de tipo funcional y al software matemático en general. Iverson recibió el premio Turing en 1979 por sus contribuciones a la notación matemática en los lenguajes de programación.

Las características principales de APL son: Las ventajas de APL son: Ejemplos:
  1. n ← 4 5 6 7 (creación de un vector n con los valores especificados)

  2. n+4 (suma 4 a todos los valores de n: 8 9 10 11)

  3. +/n (suma todos los valores de n: 38)

  4. ί4 (valores 1 a 4: 1 2 3 4)

  5. 3+ί4 (suma 3 a los valores anteriores: 4 5 6 7)

  6. +/(3+ί4) (suma valores anteriores: 22)
(ί es la letra griega "iota")


El lenguaje J

En 1989, Kenneth Iverson, junto con Roger Hui y Arthur Whiney, crearon un prototipo de nuevo lenguaje que constituyó el germen del lenguaje J, una mejora de APL con algunas características de los lenguajes funcionales FP (Function Programming) y FL (Function Level).

FP fue creado por John Backus (el creador del lenguaje Fortran y de la notación BNF para la definición de las gramáticas de los lenguajes de programación). Backus se inspiró en APL para crear FP. FL es el sucesor de FP y fue creado en 1989 por John Backus junto con John Williams y Edward Wimmers. La may parte de las ideas innovaforas de estos dos lenguajes fueron implementadas en J.

Las características principales de J son: Desventajas de J:
MENTAL y la Compresión

La ciencia, en general, tiende a utilizar el menor número de conceptos. Busca la suprema comprensión conceptual y la máxima simplicidad posible.

MENTAL es un lenguaje comprimido en un triple sentido: 1) a nivel semántico por el reducido número de primitivas; 2) a nivel sintáctico porque no se utilizan palabras clave, solo símbolos; 3) porque facilita la compresión de los programas.

MENTAL está orientado a expresiones, que resultan de combinar las primitivas del lenguaje: Comparando MENTAL con APL y J:
MENTAL vs. APL

Las expresiones anteriores de APL son prácticamente casi igual de compactas en MENTAL:
  1. n=(4 5 6 7) // creación de un vector n con los valores especificados

  2. (n° = ( [n↓]+4 )) // suma 4 a todos los valores de n: n=(8 9 10 11)

  3. +⊣n // suma todos los valores de n: 38

  4. 1…4 // valores de 1 a 4

  5. 3+[1…4] // suma 3 a los valores anteriores: 4 5 6 7

  6. +⊣(3+[1…4]) // suma de los valores anteriores: 22

MENTAL vs. J

Bibliografía